Adam adds a twist to our YepNope format this week. Instead of 2v2, it’s 1v1v1 with Mikeal reppin’ team Yep, Divya on team Nope, and Feross sitting in the middle on team It Depends. You don’t want to miss this excellent debate/discussion all about JS tooling complexity.
Many packages
New frameworks built all the time
Config hell. Webpack
Matched from the episode's transcript 👇
Divya Sasidharan: “Many packages. New frameworks built all the time. Config hell. Webpack.” To start the conversation, it’s worth talking about what exactly JavaScript tooling is. JavaScript tooling consists of tools, utilities, libraries that give developers the ability to build code for a specific target. I don’t say web specifically or the browser, because now there’s multiple build targets you can use for JavaScript. You can build JavaScript for mobile and for the browser, so any target you want. And then JavaScript tooling is often optimized for developer ergonomics. So tools like hot reload, test suites, compilation and build config things are all specifically for developers’ satisfaction and to make their processes easier.
[04:09] So in a way, JavaScript tooling and the ecosystem is idyllic, because it gives developers the ability to wrangle an otherwise behemoth system… But the problem is that the tooling is overly complex. There’s so many tools that you have to work with now. And that’s mainly because working with modern JavaScript you can’t just take your code and put it on a browser and it runs; you have to go through multiple steps.
So with the current standard, which is ES2015 and future versions, often times they’re not always compatible with browsers, because browsers kind of take a long time to implement them… So as a result, you have to do things like transpiling, and then there’s also the issue of modularizing your code, which is often a performance benefit, because you don’t want to put all of your JavaScript and load that all at once, so you want to modularize. These add additional complexity, because you have to think about how exactly you want those systems to work.
What it boils down to with the ecosystem is we have a lot of options, which results in too many choices for developers to make, and that’s why we hear the problem of JavaScript fatigue - because there’s so many different things that you can do, there’s so many different ways in which you can approach building a web application or web things… I think that’s how we defined it from the last episode. So that is a huge problem that has resulted because of the fact that the modern JavaScript tooling is too complicated.